package com.example.demo.utils;

import com.example.demo.config.FileUploadConfig;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class FileUploadUtil {

    /**
     * 上传文件
     * @param file 文件
     * @param subDir 子目录
     * @return 文件访问URL
     */
    public static String uploadFile(MultipartFile file, String subDir) throws IOException {
        // 获取文件名
        String originalFilename = file.getOriginalFilename();
        // 获取文件后缀
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        // 生成新文件名
        String fileName = UUID.randomUUID().toString() + suffix;
        
        // 创建目标目录
        String targetDir = FileUploadConfig.UPLOAD_PATH + subDir;
        File dir = new File(targetDir);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        
        // 创建目标文件
        File targetFile = new File(targetDir + fileName);
        
        // 保存文件
        file.transferTo(targetFile);
        
        // 返回文件访问URL
        return FileUploadConfig.FILE_PREFIX + subDir + fileName;
    }
} 